package com.dk.op;

import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;

public class OptionTest {
    public static void main(String[] args) {
        //optional的泛型就是我们需要解决空指针的类型
        String str ="吴亦凡";
        Optional<String> str1 = Optional.ofNullable(str);
//        System.out.println(str1);
        //如果Optional中的数据不为空,我就去执行操作,也可以为我们避免空指针//        str1.ifPresent(c);
//        Consumer<String> c =x->{
//            x="zhangsan";
//            System.out.println(x);
//        };
//        str1.ifPresent(c);
        //如果传进来的值是空,设置一个默认值,如果不为空取出来
//        String s = str1.orElseGet(()->"默认值");
//        System.out.println(s);
        //如果不为空,我们就将字符串的第一个字符取出来
        if(str!=null){
            String substring = str.substring(0, 1);
            System.out.println(substring);
        }
        Function<String ,String > s = x->{
            String substring = x.substring(0, 1);
            return substring;
        };
        Optional<String> optional = str1.map(s);
        System.out.println(optional.get());

    }
}
